/**
 * pharma-business - 27 févr. 2011
 * guillaume
 */
package org.bspv.pharma.business.rules;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author guillaume
 *
 */
public class NotSpecification<T> extends AbstractCompositeSpecification<T> {

    /**
     * Logger.
     */
    private final static Logger LOGGER = LoggerFactory.getLogger(NotSpecification.class);
    
    /**
     * Constructeur par défaut.
     * @param specifications
     */
    public NotSpecification(Specification<T>... specifications) {
        super(specifications);
        // Avertissement sur le nombre d'argument.
        if (specifications !=  null && specifications.length > 1) {
            LOGGER.warn("Le constructeur devrait prendre un unique argument, les autres seront ignorés.");
        }
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public boolean isSatisfiedBy(final T candidate) {
        return !specifications.get(0).isSatisfiedBy(candidate);
    }
    
}
